Certain types of devices are targets for sophisticated attacks. For example, personal computer systems may become infected with malware, such as key loggers, trojans, and viruses. Valuable information, such as login information, passwords, account numbers, keys, authentication information, or fingerprint templates may be stolen or become compromised or corrupted. Users of personal computers are also subject to phishing attacks, and third parties may impersonate users once confidential user information has been obtained.
A typical personal computer (PC) includes a host, memory, and user input. The majority of PCs today run Windows on an Intel processor. These systems may be referred to as Wintel systems. Wintel systems have security weaknesses that are popular targets for hackers. Therefore, vendors and users are continually trying to develop techniques to make these systems more secure. Many systems, including Wintel systems, provide encrypted storage where the user and system can store data. When the system is at rest (i.e., when data is not being used), the data is protected in the encrypted storage. However, the data may be retrieved from the encrypted storage and used by an application running on the host. As soon as the data is removed from the secure storage, the data becomes vulnerable. Sensitive data may be attacked at this sensitive location. Furthermore, the underlying application itself may be attacked.
Conventional anti-virus techniques find only viruses, and, using conventional anti-virus techniques, viruses are found only after a problem is detected. Thus, computer hackers and other malware creators design malicious code to circumvent the security measures in the anti-virus software, and the software has to be updated or redesigned to counter the new malware attacks. Some conventional protection programs offer several layers of protection, where each layer of protection may secure another layer. However, the software securing other software can itself be attacked and used to introduce malware into the underlying application. As techniques become more sophisticated to protect against known malware attacks, more sophisticated malware is designed to circumvent them.
Another conventional approach utilizes hardware-level security. Often, Trusted Platform Modules (TPMs) are used to provide security to software. However, TPMs require extensive management, which is difficult or impossible for consumers, and they are typically directed towards making an entire platform more robust. Further, secured information is still vulnerable once a software application has obtained the secured information from the TPM.
Accordingly, what is needed are methods, systems, apparatuses, and computer program products to more effectively secure a computer application.
The present invention will now be described with reference to the accompanying drawings. In the drawings, like reference numbers can indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number may identify the drawing in which the reference number first appears.